package cn.com.dal.dataobject;

import java.util.Date;

import cn.com.support.dal.BaseDO;

/**
 * 
 * 操作日志对象
 * 
 * @since 2012-3-5 下午11:59:47
 * @version 1.0
 * @author Microbun
 */
public class OperationLogDO extends BaseDO {
	private static final long serialVersionUID = -3915119951884122111L;

	/**
	 * 自增长主键
	 */
	private Long id;

	/**
	 * 模块
	 */
	private String module;

	/**
	 * 类型
	 */
	private String type;

	/**
	 * 级别
	 */
	private String level;

	/**
	 * 来源：比如主机IP地址或某个系统
	 */
	private String source;

	/**
	 * 操作人
	 */
	private String operator;

	/**
	 * 操作人机器：通常为IP
	 */
	private String operatorHost;

	/**
	 * 操作时间
	 */
	private Date gmtOperation;

	/**
	 * 日志内容
	 */
	private String log;

	/**
	 * 保留字段
	 */
	private String attribute;

	/**
	 * 获取ID
	 * 
	 * @return
	 */
	public Long getId() {
		return id;
	}

	/**
	 * 设置ID
	 * 
	 * @param id
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * 获取模块
	 * 
	 * @return
	 */
	public String getModule() {
		return module;
	}

	/**
	 * 设置模块
	 * 
	 * @param module
	 */
	public void setModule(String module) {
		this.module = module;
	}

	/**
	 * 获取类型
	 * 
	 * @return
	 */
	public String getType() {
		return type;
	}

	/**
	 * 设置类型
	 * 
	 * @param type
	 */
	public void setType(String type) {
		this.type = type;
	}

	/**
	 * 获取等级
	 * 
	 * @return
	 */
	public String getLevel() {
		return level;
	}

	/**
	 * 设置等级
	 * 
	 * @param level
	 */
	public void setLevel(String level) {
		this.level = level;
	}

	/**
	 * 获取日志来源
	 * 
	 * @return
	 */
	public String getSource() {
		return source;
	}

	/**
	 * 设置日志来源
	 * 
	 * @param source
	 */
	public void setSource(String source) {
		this.source = source;
	}

	/**
	 * 获取操作人
	 * 
	 * @return
	 */
	public String getOperator() {
		return operator;
	}

	/**
	 * 设置操作人
	 * 
	 * @param operator
	 */
	public void setOperator(String operator) {
		this.operator = operator;
	}

	/**
	 * 获取操作主机
	 * 
	 * @return
	 */
	public String getOperatorHost() {
		return operatorHost;
	}

	/**
	 * 设置操作主机
	 * 
	 * @param operatorHost
	 */
	public void setOperatorHost(String operatorHost) {
		this.operatorHost = operatorHost;
	}

	/**
	 * 获取操作时间
	 * 
	 * @return
	 */
	public Date getGmtOperation() {
		return gmtOperation;
	}

	/**
	 * 设置操作时间
	 * 
	 * @param gmtOperation
	 */
	public void setGmtOperation(Date gmtOperation) {
		this.gmtOperation = gmtOperation;
	}

	/**
	 * 获取日志信息
	 * 
	 * @return
	 */
	public String getLog() {
		return log;
	}

	/**
	 * 设置日志信息
	 * 
	 * @param log
	 */
	public void setLog(String log) {
		this.log = log;
	}

	/**
	 * 获取属性
	 * 
	 * @return
	 */
	public String getAttribute() {
		return attribute;
	}

	/**
	 * 设置属性
	 * 
	 * @param attrbute
	 */
	public void setAttribute(String attribute) {
		this.attribute = attribute;
	}

	/**
	 * 日志级别枚举
	 * 
	 * @since 2012-3-6 上午3:23:26
	 * @version 1.0
	 * @author Microbun
	 */
	public static enum Level {
		/** 无 */
		NONE("无"),
		/** 系统级 */
		SYS("系统级"),
		/** 系统级 */
		DAO("数据级"),
		/** 业务级 */
		SERVICE("业务级"),
		/** 其它 */
		OTHER("其它"), ;

		/**
		 * 描述信息
		 */
		private String descript;

		private Level(String descript) {
			this.descript = descript;
		}

		/**
		 * 获取描述信息
		 * 
		 * @return 描述信息
		 */
		public String getDescript() {
			return descript;
		}
	}

	/**
	 * 日志模块枚举
	 * 
	 * @since 2012-3-6 上午3:29:11
	 * @version 1.0
	 * @author Microbun
	 */
	public static enum Module {
		/** 无 */
		NONE("无");

		/**
		 * 描述信息
		 */
		private String descript;

		private Module(String descript) {
			this.descript = descript;
		}

		/**
		 * 模块描述
		 * 
		 * @return
		 */
		public String getDescript() {
			return descript;
		}

	}

	/**
	 * 日志类型枚举
	 * 
	 * @since 2012-3-6 上午3:31:10
	 * @version 1.0
	 * @author Microbun
	 */
	public static enum Type {
		/** 无 */
		NONE("无");

		/**
		 * 描述信息
		 */
		private String descript;

		private Type(String descript) {
			this.descript = descript;
		}

		/**
		 * 获取类型描述
		 * 
		 * @return 描述信息
		 */
		public String getDescript() {
			return descript;
		}
	}
}
